In a distributed system there is often a need to distribute packages to various computer systems within the distributed system. These packages may contain programs, patches, documents or other files. In conventional systems, distribution requires the computer systems to register with a master to identify what packages are to be distributed to the respective computer systems. The master then issues a publishing event indicating that a package is available, and the package is distributed to the parties that registered for the package.
Unfortunately, this conventional approach suffers from some drawbacks. For example, there is a great deal of overhead incurred in providing support for the registration. A registry must be maintained, and resources must be provided to enable the computer systems to register with the master. In addition, there is no mechanism for a computer system to anonymously install packages as needed.